package com.lancoo.ccas53.pojo.dto;

import com.lancoo.ccas53.entity.ScheduleConflictInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: liufeng
 * @CreateTime: 2024-07-15  09:59
 * @Description:
 */
@Data
@ApiModel("教学班课表fto")
public class TeachingClassWeekScheduleDto {
    @ApiModelProperty("教学班id")
    private Long teachingClassId;

    @ApiModelProperty("教学计划id")
    private Long teachingPlanId;

    @ApiModelProperty("任务id")
    private Integer taskId;

    @ApiModelProperty("教学班名称")
    private String teachingClassName;

    @ApiModelProperty("课程id")
    private Long courseId;

    @ApiModelProperty("课程id")
    private Double credit;

    @ApiModelProperty("课程代码")
    private String courseCode;

    @ApiModelProperty("课程名称")
    private String courseName;

    @ApiModelProperty("课程类型")
    private String courseType;

    @ApiModelProperty("讲授学时")
    private String lectureHour;


    @ApiModelProperty("实验学时")
    private String experimentalHour;


    @ApiModelProperty("上机学时")
    private String computerHour;


    @ApiModelProperty("其他学时")
    private String otherHour;


    @ApiModelProperty("班级人数")
    private String classNum;


    @ApiModelProperty("场地容量")
    private String roomNum;


    @ApiModelProperty("行政班字符串")
    private String classId;

    @ApiModelProperty("行政班名称")
    private String className;

    @ApiModelProperty("行政班教室")
    private Long roomId;

    @ApiModelProperty("行政班教室")
    private String roomName;

    @ApiModelProperty("所属校区")
    private String campusId;

    @ApiModelProperty("校区名称")
    private String campusName;

    private Integer studyNature;
    private Integer majorProp;


    @ApiModelProperty("1已选 2未选//排课状态 1已排（正常）、2已排（未满足规则）、3已排（冲突）、4 待排")
    private Integer state;

    @ApiModelProperty("学生人数")
    private Integer studentNumber;


    /**
     * 周次，用字符串表示二进制形式
     */
    @ApiModelProperty("周次")
    private String week;
    /**
     * 周学时
     */
    @ApiModelProperty("周学时")
    private Integer weekNum;
    /**
     * 连上节次
     */
    @ApiModelProperty("连上节次")
    private Integer connectSection;
    /**
     * 连上次数
     */
    @ApiModelProperty("连上次数")
    private Integer connectNumber;
    /**
     * 0:环节  1讲授 2实验 3上机 4其他
     */
    @ApiModelProperty("授课类型")
    private Integer hourType;

    @ApiModelProperty("教室类型")
    private Integer roomType;
    private String roomTypeName;

    @ApiModelProperty("锁定信息")
    private Integer isLocked;


    private List<TeacherDto> teachers;

    @ApiModelProperty("课表")
    List<ScheduleDto> schedules = new ArrayList<>();

    @ApiModelProperty("冲突原因")
    private List<ScheduleConflictInfo> conflicts;


}
